<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
     "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!-- $Id: downloading.html,v 1.3 2008-05-22 04:20:30 thomasoa Exp $ -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL="SHORTCUT ICON" HREF="/icon/bridge.ico">
<link rev="made" href="mailto:thomaso@centerline.com (Thomas Andrews)">
<link rel="stylesheet" type="text/css" href="look.css">
<title>
    Deal 3.1 - Downloading
</title>

</head>

<body>
<div class="back"><A href="./">Back to <em>Deal Top Page</em></A></div>
<TABLE class="toplevel">
<TR valign="middle"><td align="center"><img
style="width:225px;height:216px"
 SRC="../graphics/falling_small.jpg" alt="Deal 3.1"></td>
<td valign="middle">
<div class="header"><h2>Downloading Deal</h2></div>
<UL>
<li> <a href="#deal31">Downloading Deal 3.1.0</a>
<li> <a href="#changes">Recent Changes</a>
<li> <a href="#building">Building Deal</a>
</UL></td>
</tr></table>

<div class="toplevel">
<hr>

<h3><a name="deal31">Downloading Deal 3.1</a></h3>
<p>Go to the <a href="http://bridge.thomasoandrews.com/deal/">main Deal page</a> to download the latest version.
<h3><a name="changes">Recent Changes</a></h3>
<pre class="codesample">
Changes in Deal 3.1.1

   * Implemented deal::tricks for caching of double dummy data
     and uniform interface to double dummy tricks data

   * Changed call to Haglund's solver to re-use data when processing
     contracts in the same denomination and different declarers.

Changes in Deal 3.1

   * Added Bo Haglund's Double Dummy Solver

Changes in Deal 3.0.8

[ No binary changes ]

   * Fixed "line" input format

   * Updates documentation

Changes in Deal 3.0.7

[ No binary changes - all changes in the Tcl files. ]

   * Changed "score" to be a table lookup.
   * Fixed a bug in "parscore" which wrong-sided the
     contract sometimes.
   * Fixed documentation file "commands.html".

Changes in Deal 3.0.6

[ No binary changes this release - all changes in the Tcl files. ]

   * Made changes to gib.tcl to work with the latest version of GIB.

   * Fixed a few bugs with various formatting procedures.

Changes in Deal 3.0.5

   * Fixed a bug - Deal 3.0.4 failed to recognize "-" as void
   in -S, -E, -N, -W options, as well as in "north is " commands.

     -----

Changes in Deal 3.0.4

   * Update doc examples to match ex/ subdirectory.

   * Deleted util.c and util.h from distribution.

     -----

Changes in Deal 3.0.3

  * Added GNU General Public License copyright to most files, and full
  GPL text to release.

  * Altered deal.c to improve performance of reset_deal() routine.
  Improved overall performance of 10%.

  * Re-implemented in Tcl the broken undocumented old procedures,
   intersectclass, negateclass, and joinclass.  This lets you create
   new shape classes from old shape classes using standard boolean
   functions.  Old code removed from dist.c, new code added to deal.tcl .

  * Deleted some unused code in deal.tcl which was left from early
   efforts at the smart stacking routines.

  * Updated the documentation

     -----
Changes in Deal 3.0.2

  * Fixed a bug in the smartstack methods.

  * Altered zip builds to put files in deal302 directory (rather than
   deal3.0.2)

  * Polished the HTML docs (in docs/html directory.)

  * Many, many improved error messages when commands are misused

  * Cleaned up some code

  * Made dist.c use more Tcl_Obj pointers rather than strings - makes for
   faster compiles of shape classes.  (I can't believe I left those
   sprintf calls for so long. :-)

  * Fixed some of the examples which called deal::stack_hand, a non-existant
   procedure.

     -----

Changes in Deal 3.0.1

The changes for Deal 3.0.1 (from Deal 3.0 beta 11) were made essentially
for two reasons:

 (1) To finish the Deal 3.0 release - e.g., added documentation.
 (2) To add features needed for the "smartstack" routines.

  * Include HTML docs in docs/html directory.

  * Most library files in release moved to the lib directory

  * Added "smartstack" input class for fast building of hands which fit
  specific patterns
  
  * Added "stacked" procedure to find out the current state of the
  deck-stacking. Returns the list of cards stacked to the named hand.

  * Altered stacking methods.  Added procedures "deck_stack_cards," 
  "deck_stack_hand", "stack_cards," and "stack_hand."  By default,
  "stack_hand" and "stack_cards" just call the "deck_" procedures,
  but the idea is that "stack_cards" and "stack_hands" can be
  overridden. Now when you call "south is AJ4 KJ54 9643 72" it in
  turn calls "stack_hand south AJ4 KJ54 9643 72." Similarly,
  "south gets ..." calls "stack_cards," although there the transformation
  is somewhat different.
  
  * Added "list" subcommand to shape classes.  e.g.,

	  shapeclass hasVoid { expr {$s*$h*$d*$c==0} }

	  foreach shape [hasVoid list] {
		...
	  }

  * Added "shape" subcommand to the shape classes and functions, e.g.,

	  shapefunc foo { ... }

	  foo shape {4 2 4 3}

    So:

	  foo north

    Is the same as:

	  foo shape [north shape]

  * Added the "holding" utility procedure, with subcommands length,
    disjoint, ...

	  holding length AKxxx   =>    5
	  holding disjoint AKJ4 QT94  => 0    [ false ]
  
New to Deal 3.0:

  * Fast holding procedures definable with holdingProc.

  * GIB interfaces (gib::directory, gib::tricks, parscore)

  * Bridge utility routines - lho, rho, partner, score

  * Input format extensibility

  * Uses features of faster versions of Tcl (Tcl 8.x)

</pre>

<h3><a name="building">Building Deal</a></h3>
<h4>Selecting Tcl</h4>
Many Unix and Linux computers already have Tcl installed, as do Mac's running OS X.  If your
computer does not, you will need to select a version and install it.
<p>
On Unix, I'd recommend Tcl 8.3.x (or later,) but on Windows, I'd recommend Tcl
8.0.5, because I've had problems with Tcl hanging with later versions.
<p>
All versions of Tcl can be downloaded from the
<a href="http://www.scriptics.com/">Scriptics web site.</a>
<p>
<h4>The <code>Makefile</code></h4>
After <a href="#deal31">downloading the Deal source code,</a>
you should get a zip file.  When you unzip it, you should get a directory,
<code>deal310</code>.
<p>
On Unix machines, you will need to edit the Makefile to point to
your installation of Tcl.  You may have to
change the following variables in the Makefile:
<dl>
<dt><strong><tt>TCL_LIB</tt></strong>
<dd> The directory where the Tcl library is installed.
        default value is <tt>/usr/local/lib</tt>.
<dt><strong><tt>TCL_INCL</tt></strong>
<dd> The directory where <tt>tcl.h</tt> is installed.  The default
        value is <tt>/usr/local/include</tt>.
<dt><strong><tt>LDFLAGS</tt></strong>
<dd> Really a list of liabraries needed at link time.  By default,
        "<tt>-L($TCL_LIB) -ltcl8.3 -lm</tt>", which works
        at least on SunOS 4, HP, and SGI.  On Solaris 2, you need to
        add "<tt>-ldl -lsocket -lnsl</tt>".
<dt><strong><tt>EXTRA_CFLAGS</tt></strong>
<dd> Whatever else you need...
</dl>
<hr>
<table><tr><td><a href="../" class="image">
<img style="border:0;width:40px;height:56px" alt="Silhouette" src="../graphics/StampSm.gif"></a><td>
<a NAME="mysig"> Thomas Andrews</a>
(<a href="mailto:thomaso@best.com">thomaso@best.com</a>)
<a name="caveat"> Copyright 1996-2002.</a>  Deal is covered by the 
<a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License.</a>
<p>
<a href="../graphics/falling.jpg"><em>Plane Dealing</em></a> graphic
above created using
<a href="http://www.povray.org/">POV-Ray.</a>
</tr></table>
</div>
</body>
</html>
